package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * 机构信息表
 * @TableName t_institution
 */
@TableName(value ="t_institution")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TInstitution implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "institution_id",type = IdType.ASSIGN_ID)
    private String institutionId;

    /**
     * 机构名称
     */
    @TableField(value = "institution_name")
    private String institutionName;

    /**
     * 机构类型(0:政府机构,1:事业单位,2:企业,3:社会团体,4:其他组织机构) 字典表=institutional_type
     */
    @TableField(value = "institution_type")
    private Integer institutionType;

    /**
     * 统一社会信用代码
     */
    @TableField(value = "unified_social_credit_code")
    private String unifiedSocialCreditCode;

    /**
     * 注册地址
     */
    @TableField(value = "register_address")
    private String registerAddress;

    /**
     * 法人姓名
     */
    @TableField(value = "legal_name")
    private String legalName;

    /**
     * 法人证件类型(0:身份证,1:港澳居民居住证,2:台湾居民居住证,3:护照,4:其他证件) 字典表=credentials_type
     */
    @TableField(value = "legal_credentials_type")
    private Integer legalCredentialsType;

    /**
     * 法人证件号码
     */
    @TableField(value = "legal_credentials_number")
    private String legalCredentialsNumber;

    /**
     * 注册人姓名
     */
    @TableField(value = "register_name")
    private String registerName;

    /**
     * 注册人证件类型(0:身份证,1:港澳居民居住证,2:台湾居民居住证,3:护照,4:其他证件) 字典表=credentials_type
     */
    @TableField(value = "register_credentials_type")
    private String registerCredentialsType;

    /**
     * 注册人证件号码
     */
    @TableField(value = "register_credentials_number")
    private String registerCredentialsNumber;

    /**
     * 注册人手机号
     */
    @TableField(value = "register_mobile")
    private String registerMobile;

    /**
     * 注册邮箱
     */
    @TableField(value = "register_email")
    private String registerEmail;

    /**
     * 机构账号
     */
    @TableField(value = "institution_code")
    private String institutionCode;

    /**
     * 密码
     */
    @TableField(value = "password")
    private String password;

    /**
     * 认证的状态(0:待审核 ,1:通过,2:未通过) 字典表=authentication_status
     */
    @TableField(value = "authentication_status")
    private Integer authenticationStatus;

    /**
     * 认证说明
     */
    @TableField(value = "authentication_explain")
    private String authenticationExplain;

    /**
     * 营业执照地址
     */
    @TableField(value = "business_license")
    private String businessLicense;

    /**
     * 无人机经营许可证地址
     */
    @TableField(value = "drone_business_certificate")
    private String droneBusinessCertificate;

    /**
     * 头像地址
     */
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 最后登录时间
     */
    @TableField(value = "login_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginDate;

    /**
     * 最后登录ip
     */
    @TableField(value = "login_ip")
    private String loginIp;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注说明如用途
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 账号状态(0-停用 1启用)
     */
    @TableField(value = "status")
    private Integer status;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}